﻿using ProyectoSalvadorDelMundo.Helpers;
using System;
using System.Configuration;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ProyectoSalvadorDelMundo.CatalogosGlobales
{
    public partial class CatalogoBrazosMinisterios : PaginaBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

                // Navegacion
                linkNav.NavigateUrl = ConfigurationManager.AppSettings.GetValues("linkNav-NavigateUrl")[0];
                linkNav.Text = ConfigurationManager.AppSettings.GetValues("linkNav-Text")[0];

                lblNavActiva.Text = ConfigurationManager.AppSettings.GetValues("lblNavActiva-Text")[0];
                lblNavActiva.CssClass = ConfigurationManager.AppSettings.GetValues("lblNavActiva-CssClass")[0];

                // Titulo
                lblTitulo.Text = ConfigurationManager.AppSettings.GetValues("lblTitulo-Text")[0];
                lblTitulo.CssClass = ConfigurationManager.AppSettings.GetValues("lblTitulo-CssClass")[0];

                // Agregar
                btnAgregar.Text = ConfigurationManager.AppSettings.GetValues("btnAgregar-Text")[0];
                btnAgregar.ToolTip = ConfigurationManager.AppSettings.GetValues("btnAgregar-ToolTip")[0];
                btnAgregar.CssClass = ConfigurationManager.AppSettings.GetValues("btnAgregar-CssClass")[0];

                // Buscar
                btnBuscar.ImageUrl = ConfigurationManager.AppSettings.GetValues("btnBuscar-ImageUrl")[0];
                btnBuscar.ToolTip = ConfigurationManager.AppSettings.GetValues("btnBuscar-ToolTip")[0];
                btnBuscar.AlternateText = ConfigurationManager.AppSettings.GetValues("btnBuscar-AlternateText")[0];
                btnBuscar.CssClass = ConfigurationManager.AppSettings.GetValues("btnBuscar-CssClass")[0];

                txtBuscar.Attributes.Add("placeholder", ConfigurationManager.AppSettings.GetValues("txtBuscar-placeholder")[0]);
                txtBuscar.CssClass = ConfigurationManager.AppSettings.GetValues("txtBuscar-CssClass")[0]; ;

                // Popup
                //-----------------
                lblAccion.Visible = false;
                lblAccion.Enabled = false;
                lblAccion.Text = string.Empty;

                pnlAgregarEditar.CssClass = "modal-dialog modal-lg";
                pnlAgregarEditar.Attributes.Add("Style", "display: none");


                // Popup Header
                btnPopX.Text = "X";
                btnPopX.CssClass = "close";
                //btnPopX.Attributes.Add("data-dismiss", "modal");


                lblPopupTitulo.CssClass = "modal-title";

                // Popup Contenido
                txtId.Enabled = false;

                lblNombre.Text = "Nombre";
                lblNombre.AssociatedControlID = "txtNombre";
                lblNombre.CssClass = "col-sm-2 control-label";

                txtNombre.Attributes.Add("placeholder", "Ingresar Nombre");
                txtNombre.CssClass = "form-control";
                // Popup Footer
                btnPopCerrar.Text = "Cerrar";
                btnPopCerrar.CssClass = "btn btn-default";
                //btnPopCerrar.Attributes.Add("data-dismiss", "modal");

                btnPopGuardar.Text = "Guardar Cambios";

                btnPopGuardar.OnClientClick = "Guardar";

                //this.Session["Grupo"] = "1";
                // Cargar datos.
                this.Page.Form.DefaultButton = btnBuscar.ID;
                this.Page.Form.DefaultFocus = txtBuscar.ID;
                if (RefrescarDatosMinisterios())
                {
                    linkIrMinisterios.Text = "";
                    linkIrMinisterios.Enabled = false;
                    ddlMinisterio.SelectedIndex = 0;
                    RefrescarDatos(Convert.ToInt64(ddlMinisterio.SelectedValue));
                }
                else
                {
                    linkIrMinisterios.Text = "Agrear Ministerios";
                    linkIrMinisterios.Enabled = true;
                    btnAgregar.Enabled = false;
                    btnBuscar.Enabled = false;
                }

            }
        }

        protected void ddlMinisterio_SelectedIndexChanged(object sender, EventArgs e)
        {
            RefrescarDatos(Convert.ToInt64(ddlMinisterio.SelectedValue));
        }


        private DataTable Listar(long p_lID)
        {
            var oCn_BrazosMinisterio = new CN.BrazosMinisterio();
            if (txtBuscar.Text != string.Empty)
            {
                return oCn_BrazosMinisterio.ListarPorBus(txtBuscar.Text, p_lID);
            }
            else
            {
                return oCn_BrazosMinisterio.Listar(p_lID);
            }
        }

        private DataTable ListarMinisterios()
        {
            var oCn_Ministerios = new CN.Ministerios();
            return oCn_Ministerios.Listar();
        }

        private void RefrescarDatos(long p_lID)
        {
            lsvLista.DataSource = Listar(p_lID);
            lsvLista.DataBind();
        }

        private Boolean RefrescarDatosMinisterios()
        {
            var ListaMinisterios = ListarMinisterios();
            ddlMinisterio.DataSource = ListaMinisterios;
            ddlMinisterio.DataTextField = "NOMBRE";
            ddlMinisterio.DataValueField = "ID_MINISTERIO";
            ddlMinisterio.DataBind();
            return ListaMinisterios.Rows.Count > 0 ? true : false;
        }

        protected void OnPagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
        {
            (lsvLista.FindControl("DataPager1") as DataPager).SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
            RefrescarDatos(Convert.ToInt64(ddlMinisterio.SelectedValue));
        }

        protected void Agregar(object sender, EventArgs e)
        {
            txtNombre.Text = string.Empty;
            txtNombre.Enabled = true;
            lblAccion.Text = "Agregar";
            lblPopupTitulo.Text = "Agregar Ministerio";
            btnPopGuardar.Text = "Agregar";
            btnPopGuardar.CssClass = "btn btn-primary";
            txtNombre.Focus();
            popup.Show();
        }

        protected void Editar(object sender, EventArgs e)
        {
            ListViewDataItem item = (ListViewDataItem)(sender as Control).NamingContainer;
            Label lblID = (Label)item.FindControl("ID");
            Label lblNombre = (Label)item.FindControl("NOMBRE");
            txtId.Text = lblID.Text;
            txtNombre.Text = lblNombre.Text;
            txtNombre.Enabled = true;
            lblAccion.Text = "Editar";
            lblPopupTitulo.Text = "Editar Ministerio";
            btnPopGuardar.Text = "Guardar Cambios";
            btnPopGuardar.CssClass = "btn btn-primary";
            txtNombre.Focus();
            popup.Show();
        }
        protected void Eliminar(object sender, EventArgs e)
        {
            ListViewDataItem item = (ListViewDataItem)(sender as Control).NamingContainer;
            Label lblID = (Label)item.FindControl("ID");
            Label lblNombre = (Label)item.FindControl("NOMBRE");
            txtId.Text = lblID.Text;
            txtNombre.Text = lblNombre.Text;
            txtNombre.Enabled = false;
            lblAccion.Text = "Eliminar";
            lblPopupTitulo.Text = "Eliminar Ministerio";
            btnPopGuardar.Text = "Eliminar";
            btnPopGuardar.CssClass = "btn btn-danger";
            popup.Show();
        }

        protected void Guardar(object sender, EventArgs e)
        {
            var oCn_BrazosMinisterio = new CN.BrazosMinisterio();
            var oCe_BrazosMinisterio = new CE.BrazosMinisterio();
            var strResultado = string.Empty;

            if (lblAccion.Text == "Editar")
            {
                oCe_BrazosMinisterio.NOMBRE = txtNombre.Text;
                oCe_BrazosMinisterio.ID_BRAZO_MINISTERIO = Convert.ToInt64(txtId.Text);
                oCe_BrazosMinisterio.ID_MINISTERIO = Convert.ToInt64(ddlMinisterio.SelectedValue);
                oCe_BrazosMinisterio.IsNew = false;
                strResultado = oCn_BrazosMinisterio.GuardarCambios(oCe_BrazosMinisterio, "Prueba");
                popup.Hide();
            }
            else if (lblAccion.Text == "Agregar")
            {
                oCe_BrazosMinisterio.NOMBRE = txtNombre.Text;
                oCe_BrazosMinisterio.ID_BRAZO_MINISTERIO = 1;
                oCe_BrazosMinisterio.ID_MINISTERIO = Convert.ToInt64(ddlMinisterio.SelectedValue);
                oCe_BrazosMinisterio.IsNew = true;
                strResultado = oCn_BrazosMinisterio.GuardarCambios(oCe_BrazosMinisterio, "Prueba");
                popup.Hide();
            }
            else if (lblAccion.Text == "Eliminar")
            {
                oCe_BrazosMinisterio.NOMBRE = txtNombre.Text;
                oCe_BrazosMinisterio.ID_BRAZO_MINISTERIO = Convert.ToInt64(txtId.Text);
                oCe_BrazosMinisterio.IsNew = false;
                strResultado = oCn_BrazosMinisterio.Eliminar(oCe_BrazosMinisterio, "Prueba");

                DataPager pgr = lsvLista.FindControl("DataPager1") as DataPager;
                if (pgr != null && lsvLista.Items.Count != pgr.TotalRowCount)
                {
                    pgr.SetPageProperties(0, pgr.MaximumRows, false);
                }
            }
            if (strResultado == "Cambios aplicados con exito.")
            {
                MostarExito(strResultado);
            }
            else if (strResultado == "El registro no se puede borrar por que tiene reistros relacionados.")
            {
                MostarInfo(strResultado);
            }
            else
            {
                MostarError("Ocurrio un error inesperado al guardar los cambios.");
            }
            RefrescarDatos(Convert.ToInt64(ddlMinisterio.SelectedValue));
        }

        protected void Buscar(object sender, EventArgs e)
        {
            RefrescarDatos(Convert.ToInt64(ddlMinisterio.SelectedValue));

        }

        protected void CerrarPop(object sender, EventArgs e)
        {
            popup.Hide();
        }
    }
}